package haizhi.fruitmall.pojo.po;

import java.util.ArrayList;
import java.util.List;

public class OrdersExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public OrdersExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andOrderIdIsNull() {
            addCriterion("order_id is null");
            return (Criteria) this;
        }

        public Criteria andOrderIdIsNotNull() {
            addCriterion("order_id is not null");
            return (Criteria) this;
        }

        public Criteria andOrderIdEqualTo(String value) {
            addCriterion("order_id =", value, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdNotEqualTo(String value) {
            addCriterion("order_id <>", value, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdGreaterThan(String value) {
            addCriterion("order_id >", value, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdGreaterThanOrEqualTo(String value) {
            addCriterion("order_id >=", value, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdLessThan(String value) {
            addCriterion("order_id <", value, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdLessThanOrEqualTo(String value) {
            addCriterion("order_id <=", value, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdLike(String value) {
            addCriterion("order_id like", value, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdNotLike(String value) {
            addCriterion("order_id not like", value, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdIn(List<String> values) {
            addCriterion("order_id in", values, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdNotIn(List<String> values) {
            addCriterion("order_id not in", values, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdBetween(String value1, String value2) {
            addCriterion("order_id between", value1, value2, "orderId");
            return (Criteria) this;
        }

        public Criteria andOrderIdNotBetween(String value1, String value2) {
            addCriterion("order_id not between", value1, value2, "orderId");
            return (Criteria) this;
        }

        public Criteria andTrackingNumberIsNull() {
            addCriterion("tracking_number is null");
            return (Criteria) this;
        }

        public Criteria andTrackingNumberIsNotNull() {
            addCriterion("tracking_number is not null");
            return (Criteria) this;
        }

        public Criteria andTrackingNumberEqualTo(String value) {
            addCriterion("tracking_number =", value, "trackingNumber");
            return (Criteria) this;
        }

        public Criteria andTrackingNumberNotEqualTo(String value) {
            addCriterion("tracking_number <>", value, "trackingNumber");
            return (Criteria) this;
        }

        public Criteria andTrackingNumberGreaterThan(String value) {
            addCriterion("tracking_number >", value, "trackingNumber");
            return (Criteria) this;
        }

        public Criteria andTrackingNumberGreaterThanOrEqualTo(String value) {
            addCriterion("tracking_number >=", value, "trackingNumber");
            return (Criteria) this;
        }

        public Criteria andTrackingNumberLessThan(String value) {
            addCriterion("tracking_number <", value, "trackingNumber");
            return (Criteria) this;
        }

        public Criteria andTrackingNumberLessThanOrEqualTo(String value) {
            addCriterion("tracking_number <=", value, "trackingNumber");
            return (Criteria) this;
        }

        public Criteria andTrackingNumberLike(String value) {
            addCriterion("tracking_number like", value, "trackingNumber");
            return (Criteria) this;
        }

        public Criteria andTrackingNumberNotLike(String value) {
            addCriterion("tracking_number not like", value, "trackingNumber");
            return (Criteria) this;
        }

        public Criteria andTrackingNumberIn(List<String> values) {
            addCriterion("tracking_number in", values, "trackingNumber");
            return (Criteria) this;
        }

        public Criteria andTrackingNumberNotIn(List<String> values) {
            addCriterion("tracking_number not in", values, "trackingNumber");
            return (Criteria) this;
        }

        public Criteria andTrackingNumberBetween(String value1, String value2) {
            addCriterion("tracking_number between", value1, value2, "trackingNumber");
            return (Criteria) this;
        }

        public Criteria andTrackingNumberNotBetween(String value1, String value2) {
            addCriterion("tracking_number not between", value1, value2, "trackingNumber");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNull() {
            addCriterion("user_id is null");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNotNull() {
            addCriterion("user_id is not null");
            return (Criteria) this;
        }

        public Criteria andUserIdEqualTo(Integer value) {
            addCriterion("user_id =", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotEqualTo(Integer value) {
            addCriterion("user_id <>", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThan(Integer value) {
            addCriterion("user_id >", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("user_id >=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThan(Integer value) {
            addCriterion("user_id <", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThanOrEqualTo(Integer value) {
            addCriterion("user_id <=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdIn(List<Integer> values) {
            addCriterion("user_id in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotIn(List<Integer> values) {
            addCriterion("user_id not in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdBetween(Integer value1, Integer value2) {
            addCriterion("user_id between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotBetween(Integer value1, Integer value2) {
            addCriterion("user_id not between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andOrderingTimeIsNull() {
            addCriterion("ordering_time is null");
            return (Criteria) this;
        }

        public Criteria andOrderingTimeIsNotNull() {
            addCriterion("ordering_time is not null");
            return (Criteria) this;
        }

        public Criteria andOrderingTimeEqualTo(String value) {
            addCriterion("ordering_time =", value, "orderingTime");
            return (Criteria) this;
        }

        public Criteria andOrderingTimeNotEqualTo(String value) {
            addCriterion("ordering_time <>", value, "orderingTime");
            return (Criteria) this;
        }

        public Criteria andOrderingTimeGreaterThan(String value) {
            addCriterion("ordering_time >", value, "orderingTime");
            return (Criteria) this;
        }

        public Criteria andOrderingTimeGreaterThanOrEqualTo(String value) {
            addCriterion("ordering_time >=", value, "orderingTime");
            return (Criteria) this;
        }

        public Criteria andOrderingTimeLessThan(String value) {
            addCriterion("ordering_time <", value, "orderingTime");
            return (Criteria) this;
        }

        public Criteria andOrderingTimeLessThanOrEqualTo(String value) {
            addCriterion("ordering_time <=", value, "orderingTime");
            return (Criteria) this;
        }

        public Criteria andOrderingTimeLike(String value) {
            addCriterion("ordering_time like", value, "orderingTime");
            return (Criteria) this;
        }

        public Criteria andOrderingTimeNotLike(String value) {
            addCriterion("ordering_time not like", value, "orderingTime");
            return (Criteria) this;
        }

        public Criteria andOrderingTimeIn(List<String> values) {
            addCriterion("ordering_time in", values, "orderingTime");
            return (Criteria) this;
        }

        public Criteria andOrderingTimeNotIn(List<String> values) {
            addCriterion("ordering_time not in", values, "orderingTime");
            return (Criteria) this;
        }

        public Criteria andOrderingTimeBetween(String value1, String value2) {
            addCriterion("ordering_time between", value1, value2, "orderingTime");
            return (Criteria) this;
        }

        public Criteria andOrderingTimeNotBetween(String value1, String value2) {
            addCriterion("ordering_time not between", value1, value2, "orderingTime");
            return (Criteria) this;
        }

        public Criteria andOrderStatusIsNull() {
            addCriterion("order_status is null");
            return (Criteria) this;
        }

        public Criteria andOrderStatusIsNotNull() {
            addCriterion("order_status is not null");
            return (Criteria) this;
        }

        public Criteria andOrderStatusEqualTo(Byte value) {
            addCriterion("order_status =", value, "orderStatus");
            return (Criteria) this;
        }

        public Criteria andOrderStatusNotEqualTo(Byte value) {
            addCriterion("order_status <>", value, "orderStatus");
            return (Criteria) this;
        }

        public Criteria andOrderStatusGreaterThan(Byte value) {
            addCriterion("order_status >", value, "orderStatus");
            return (Criteria) this;
        }

        public Criteria andOrderStatusGreaterThanOrEqualTo(Byte value) {
            addCriterion("order_status >=", value, "orderStatus");
            return (Criteria) this;
        }

        public Criteria andOrderStatusLessThan(Byte value) {
            addCriterion("order_status <", value, "orderStatus");
            return (Criteria) this;
        }

        public Criteria andOrderStatusLessThanOrEqualTo(Byte value) {
            addCriterion("order_status <=", value, "orderStatus");
            return (Criteria) this;
        }

        public Criteria andOrderStatusIn(List<Byte> values) {
            addCriterion("order_status in", values, "orderStatus");
            return (Criteria) this;
        }

        public Criteria andOrderStatusNotIn(List<Byte> values) {
            addCriterion("order_status not in", values, "orderStatus");
            return (Criteria) this;
        }

        public Criteria andOrderStatusBetween(Byte value1, Byte value2) {
            addCriterion("order_status between", value1, value2, "orderStatus");
            return (Criteria) this;
        }

        public Criteria andOrderStatusNotBetween(Byte value1, Byte value2) {
            addCriterion("order_status not between", value1, value2, "orderStatus");
            return (Criteria) this;
        }

        public Criteria andShipmentMaterialIsNull() {
            addCriterion("shipment_material is null");
            return (Criteria) this;
        }

        public Criteria andShipmentMaterialIsNotNull() {
            addCriterion("shipment_material is not null");
            return (Criteria) this;
        }

        public Criteria andShipmentMaterialEqualTo(String value) {
            addCriterion("shipment_material =", value, "shipmentMaterial");
            return (Criteria) this;
        }

        public Criteria andShipmentMaterialNotEqualTo(String value) {
            addCriterion("shipment_material <>", value, "shipmentMaterial");
            return (Criteria) this;
        }

        public Criteria andShipmentMaterialGreaterThan(String value) {
            addCriterion("shipment_material >", value, "shipmentMaterial");
            return (Criteria) this;
        }

        public Criteria andShipmentMaterialGreaterThanOrEqualTo(String value) {
            addCriterion("shipment_material >=", value, "shipmentMaterial");
            return (Criteria) this;
        }

        public Criteria andShipmentMaterialLessThan(String value) {
            addCriterion("shipment_material <", value, "shipmentMaterial");
            return (Criteria) this;
        }

        public Criteria andShipmentMaterialLessThanOrEqualTo(String value) {
            addCriterion("shipment_material <=", value, "shipmentMaterial");
            return (Criteria) this;
        }

        public Criteria andShipmentMaterialLike(String value) {
            addCriterion("shipment_material like", value, "shipmentMaterial");
            return (Criteria) this;
        }

        public Criteria andShipmentMaterialNotLike(String value) {
            addCriterion("shipment_material not like", value, "shipmentMaterial");
            return (Criteria) this;
        }

        public Criteria andShipmentMaterialIn(List<String> values) {
            addCriterion("shipment_material in", values, "shipmentMaterial");
            return (Criteria) this;
        }

        public Criteria andShipmentMaterialNotIn(List<String> values) {
            addCriterion("shipment_material not in", values, "shipmentMaterial");
            return (Criteria) this;
        }

        public Criteria andShipmentMaterialBetween(String value1, String value2) {
            addCriterion("shipment_material between", value1, value2, "shipmentMaterial");
            return (Criteria) this;
        }

        public Criteria andShipmentMaterialNotBetween(String value1, String value2) {
            addCriterion("shipment_material not between", value1, value2, "shipmentMaterial");
            return (Criteria) this;
        }

        public Criteria andOrderFreightIsNull() {
            addCriterion("order_freight is null");
            return (Criteria) this;
        }

        public Criteria andOrderFreightIsNotNull() {
            addCriterion("order_freight is not null");
            return (Criteria) this;
        }

        public Criteria andOrderFreightEqualTo(Float value) {
            addCriterion("order_freight =", value, "orderFreight");
            return (Criteria) this;
        }

        public Criteria andOrderFreightNotEqualTo(Float value) {
            addCriterion("order_freight <>", value, "orderFreight");
            return (Criteria) this;
        }

        public Criteria andOrderFreightGreaterThan(Float value) {
            addCriterion("order_freight >", value, "orderFreight");
            return (Criteria) this;
        }

        public Criteria andOrderFreightGreaterThanOrEqualTo(Float value) {
            addCriterion("order_freight >=", value, "orderFreight");
            return (Criteria) this;
        }

        public Criteria andOrderFreightLessThan(Float value) {
            addCriterion("order_freight <", value, "orderFreight");
            return (Criteria) this;
        }

        public Criteria andOrderFreightLessThanOrEqualTo(Float value) {
            addCriterion("order_freight <=", value, "orderFreight");
            return (Criteria) this;
        }

        public Criteria andOrderFreightIn(List<Float> values) {
            addCriterion("order_freight in", values, "orderFreight");
            return (Criteria) this;
        }

        public Criteria andOrderFreightNotIn(List<Float> values) {
            addCriterion("order_freight not in", values, "orderFreight");
            return (Criteria) this;
        }

        public Criteria andOrderFreightBetween(Float value1, Float value2) {
            addCriterion("order_freight between", value1, value2, "orderFreight");
            return (Criteria) this;
        }

        public Criteria andOrderFreightNotBetween(Float value1, Float value2) {
            addCriterion("order_freight not between", value1, value2, "orderFreight");
            return (Criteria) this;
        }

        public Criteria andShopperTypeIsNull() {
            addCriterion("shopper_type is null");
            return (Criteria) this;
        }

        public Criteria andShopperTypeIsNotNull() {
            addCriterion("shopper_type is not null");
            return (Criteria) this;
        }

        public Criteria andShopperTypeEqualTo(String value) {
            addCriterion("shopper_type =", value, "shopperType");
            return (Criteria) this;
        }

        public Criteria andShopperTypeNotEqualTo(String value) {
            addCriterion("shopper_type <>", value, "shopperType");
            return (Criteria) this;
        }

        public Criteria andShopperTypeGreaterThan(String value) {
            addCriterion("shopper_type >", value, "shopperType");
            return (Criteria) this;
        }

        public Criteria andShopperTypeGreaterThanOrEqualTo(String value) {
            addCriterion("shopper_type >=", value, "shopperType");
            return (Criteria) this;
        }

        public Criteria andShopperTypeLessThan(String value) {
            addCriterion("shopper_type <", value, "shopperType");
            return (Criteria) this;
        }

        public Criteria andShopperTypeLessThanOrEqualTo(String value) {
            addCriterion("shopper_type <=", value, "shopperType");
            return (Criteria) this;
        }

        public Criteria andShopperTypeLike(String value) {
            addCriterion("shopper_type like", value, "shopperType");
            return (Criteria) this;
        }

        public Criteria andShopperTypeNotLike(String value) {
            addCriterion("shopper_type not like", value, "shopperType");
            return (Criteria) this;
        }

        public Criteria andShopperTypeIn(List<String> values) {
            addCriterion("shopper_type in", values, "shopperType");
            return (Criteria) this;
        }

        public Criteria andShopperTypeNotIn(List<String> values) {
            addCriterion("shopper_type not in", values, "shopperType");
            return (Criteria) this;
        }

        public Criteria andShopperTypeBetween(String value1, String value2) {
            addCriterion("shopper_type between", value1, value2, "shopperType");
            return (Criteria) this;
        }

        public Criteria andShopperTypeNotBetween(String value1, String value2) {
            addCriterion("shopper_type not between", value1, value2, "shopperType");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}